perm filename SERVO.DOC[CMS,LCS]2 blob sn#449472 filedate 1979-06-12 generic text, type T, neo UTF8
00100		JOINT SERVO INTERFACE.
00200	
00300	HOST - JOINT COMMUNICATION.
00400	
00500	Host - joint interface.
00600		The host - joint interface is a standard LSI 11 parallel
00700	interface which is connected through another board to each
00800	joint processor's memory.
00900	 
01000	CSR0.
01100		The CSR0 bit is the address/data bit for I/O transfers to
01200	and from the joint processors memory. 0 for address and 1 for data.
01300	
01400	CSR1.
01500		The CSR1 bit is the read/write bit for I/O to the joint
01600	processors memory. 0 for read and 1 for write.
01700	
01800	DRINBUF.
01900		The input buffer is used to read data from a joint's memory
02000	when a joint is addressed and CSR1 is not set. This buffer is also
02100	used for the same functions as the earlier board (XIN, INTOL, ATTN REQ,
02200	etc.) .
02300	
02400	DROUTBUF.
02500		When CSR0 is 0 the output buffer is used to address the memory
02600	and select the joint. Bits 0 through 2 select the joint, and bits
02700	8 through 13 are the complement of the memory address. Bit 3, when
02800	set, enables the joint select counter.
02900		When CSR0 is 1 the output buffer is used to write data to the
03000	selected joint's memory.
03100		The output buffer also is used for other functions as in the
03200	earlier board (XOUT, etc.) .
03300	
03400		It should be noted that writing DROUTBUF when CSR0 and CSR1 are
03500	clear sets the transfer request flip flop and therefor, if followed directly
03600	by setting CSR0 and CSR1, results in writing the joint select word to
03700	the selected processor's memory.
03800		This can be avoided by setting CSR1 before writing the
03900	joint select word.
04000		When reading a joint's memory immediately after writing the same
04100	location without clearing CSR0, it is nessesary to read DRINBUF
04200	twice before getting valid data.
     

00100		SHARED MEMORY DEFINITIONS.
00200	
00300	STATUS:	77000
00400		Bit 14 is the check word error bit.
00420		Bit 13 is the host time out error bit.
00440		Bit 12 is the joint interrupt error bit.
00460		All other bits of the STATUS word are undefined.
00500	
00600	MODE:	76000
00700		Bit 15 of the mode word is the servo enable bit. It must be
00800	set before the joint will accept a position command.
00900		Bit 14 is the integrator enable bit.
01000		Bit 13 is the LSB servo enable bit.
01100		All other bits are undefined.
01200	
01300	CKWORD:	75000
01400		This word is set to 377 (octal) by the joint on reset and when
01440	 writen by
01500	writen by the host is used as a command. After being read by the joint,
01600	the joint resets it to 377 to handshake with the host.
01700		There are only two valid commands so far. 177001 is a no-op
01800	and 177400 is the position command. Before a position command is
01900	writen the servo must be enabled in the MODE word and the new position
02000	must be writen in the CMDPOS word.
02100		Invalid commands cause the joint processor to do a reset and set
02120	the check word error bit.	
02200	
02300	CMDPOS:	74000
02400		This word is used for the new position value in a position
02500	command.
02600	
02700	IOCTRL:	73000
02800		This word is a copy of the JCR output port in bits 8 through
02900	15. IOCTRL is read only. Bit 10 is the position mode bit which, when
03000	cleared, puts the joint in free mode (setpoint equals encoder) .
03100	
03200	CURPOS:	72000
03300		This is the current position from the encoder.
03400	
03500	The rest of the shared memory words serve the same function as
03600	in the earlier servo.
03700	
03800	NINTER:	71000	Bits 8 through 15.
03900	INTSCL:	70000	Bits 8 through 15.
04000	HSTLIM:	67000	Bits 8 through 15.
04100	
04200	FRICTN:	66000	Floating point. (=.125 = 130200 octal for 1.)
04300	GRAVTY:	65000
04400	POSTOL:	64000
04500	INTTOL:	63000